package com.wl.common.system.support.dto;


import com.wl.common.core.web.dto.AbstractBaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 菜单表
 *
 * @author wanglin
 * @since 2023-09-18
 */
@Data
@Schema(description = "菜单表")
public class SysMenuDTO extends AbstractBaseDTO {
    /**
     * 描述
     */
    @Schema(description = "描述 description")
    private String description;
    /**
     * 图标
     */
    @Schema(description = "图标 icon")
    private String icon;
    /**
     * 是否受控制，默认1-受控，0-不受控；不受控的菜单，所有人都可以访问
     */
    @Schema(description = "是否受控制，默认1-受控，0-不受控；不受控的菜单，所有人都可以访问 isControlled")
    private Integer isControlled;
    /**
     * 是否隐藏，默认0显示，1隐藏
     */
    @Schema(description = "是否隐藏，默认0显示，1隐藏 isHidden")
    private Integer isHidden;
    /**
     * 菜单级数:1,2,3
     */
//    @Schema(description = "菜单级数:1,2,3 level")
//    private Integer level;
    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    @Schema(description = "菜单名称 name")
    private String name;
    private Integer status;
    /**
     * 排序号
     */
    @Schema(description = "排序号 orderIndex")
    private Integer orderIndex;
    /**
     * 上级菜单id
     */
    @Schema(description = "上级菜单id parentId")
    private String parentId;
    /**
     * 路由地址，如：System
     */
    @NotBlank(message = "路由地址不能为空")
    @Schema(description = "路由地址")
    private String path;

    @Schema(description = "组件路径")
    private String component;

    /**
     * 类型（M目录 C菜单 F按钮）
     */
    @NotBlank(message = "菜单类型不能为空")
    @Schema(description = "菜单类型")
    private String type;

    /**
     * 是否刷新（0刷新 1不刷新）
     */
//    private String isRefresh;

    /**
     * 权限字符串
     */
    private String perms;

    /**
     * 路由参数
     */
    private String query;

    /**
     * 是否为外链（0是 1否）
     */
    private Integer isFrame;

    /**
     * 是否缓存（0缓存 1不缓存）
     */
    private Integer isCache;
}